/**
 * Copyright (c) 2002-2011 旭鸣信息
 * All rights reserved. 
 * File：IArticlesSortDao.java
 * History:
 *       May 11, 2012: Initially created, liuzhi.
 */
package com.xteam.ecsystem.dao;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;

import com.xteam.ecsystem.base.SystemContent;
import com.xteam.ecsystem.entities.BaseArticleGroup;
import com.xteam.ecsystem.utils.PageCenterStation;

/**
 * 文章分类数据访问接口
 * 
 * @author liuzhi
 *
 */
public interface IArticlesSortDao {

	/**
	 * 
	 * 新增或者修改文章分类信息
	 * @author liuzhi
	 * @param obj
	 * @param bagId
	 */
	public void saveOrUpdateObject(Object obj, String bagId);
	
	/**
	 * 
	 * 删除单条或多条文章分类信息
	 * @author liuzhi
	 * @param baiIds
	 */
	public void delObject(String baiIds);
	
	/**
	 * 
	 * 条件查询和分页显示文章分类信息（预留）
	 * @author liuzhi
	 * @param index
	 * @param size
	 * @param bagName
	 * @return
	 */
	public String getBasInfoList(int pageIndex, int pageSize, String bagName);
	
	/**
	 * 根据文章分类编号获得对应的文章分类信息
	 * @author liuzhi
	 * @param bagId
	 * @return
	 */
	public String getBasInfoById(String bagId);
	
	/**
	 * 
	 * 根据文章分类编号修改文章分类状态
	 * 0：无效
	 * 1：有效
	 * @author liuzhi
	 * @param bagId
	 */
	public void updateBasStateById(String bagId);
	
	/**
	 * 
	 * 获得文章分类JSON数组,用于构建TreeGrid
	 * @author liuzhi
	 * @param ArticlesSort
	 * @param bagParent
	 * @return
	 */
	public JSONArray getBasJsonArray(BaseArticleGroup articlesSort, String bagParent);
	
	/**
	 * 懒加载文章分类树
	 * @author liuzhi
	 * @param bagParent
	 * @return
	 */
	public String lazyLoadBasTree(String bagParent);
	
	/**
	 * 懒加载文章分类树形表格
	 * @author liuzhi
	 * @param bagParent
	 * @return
	 */
	public String lazyLoadBasTreeGrid(String bagParent);
	
	/**
	 * 获取指定状态的系统内容。
	 * @author Chrise 2012-6-29
	 * @param state
	 * @param value
	 * @param text
	 * @param parent
	 * @return
	 */
	public List<Map<String, String>> getSystemContent(int state, String value, String text, String parent);
	
	/**
	 * 获取指定状态的系统内容（名称使用模糊查询）。
	 * @author Chrise 2012-6-29
	 * @param name
	 * @param state
	 * @param first
	 * @param max
	 * @return
	 */
	public PageCenterStation<SystemContent> getSystemContents(String name, int state, int first, int max);

	/**
	 * 检验选择的文章分类是否已被文章列表所使用
	 * @author liuzhi Oct 18, 2013
	 * @param bagIds
	 * @return
	 */
	public boolean getBaiByBas(String bagIds);
}
